package com.um.weixin.pay.service;

import com.github.binarywang.wxpay.bean.transfer.QueryTransferBatchesRequest;
import com.github.binarywang.wxpay.bean.transfer.QueryTransferBatchesResult;
import com.github.binarywang.wxpay.bean.transfer.TransferBatchesRequest;
import com.github.binarywang.wxpay.bean.transfer.TransferBatchesResult;
import com.github.binarywang.wxpay.exception.WxPayException;

/**
 * @Title 微信商家转账
 * @Description
 * @Author renjunwei
 * @Date 2023/10/10 15:51
 */
public interface WxTransferService {

    /**
     * <pre>
     *
     * 发起商家转账API
     *
     * 请求方式：POST（HTTPS）
     * 请求地址：<a href="https://api.mch.weixin.qq.com/v3/transfer/batches">请求地址</a>
     *
     * 文档地址：<a href="https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_1.shtml">发起商家转账API</a>
     * </pre>
     *
     * @param openId 转账请求参数
     * @param outTradeNo 转账请求参数
     * @param amount 转账请求参数
     * @return TransferBatchesResult 转账结果
     * @throws WxPayException .
     */
    TransferBatchesResult transfer(String openId, String outTradeNo, Integer amount, String remark) throws WxPayException;

    /**
     * <pre>
     *
     * 商家批次单号查询批次单API
     *
     * 请求方式：GET（HTTPS）
     * 请求地址：<a href="https://api.mch.weixin.qq.com/v3/transfer/batches/out-batch-no/{out_batch_no}">请求地址</a>
     *
     * 文档地址：<a href="https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter4_3_5.shtml">商家批次单号查询批次单API</a>
     * </pre>
     *
     * @param outTradeNo 查询请求参数
     * @return TransferBatchesResult 查询结果
     * @throws WxPayException .
     * @throws WxPayException .
     */
    QueryTransferBatchesResult.TransferDetail queryTransfer(String outTradeNo) throws WxPayException;

}
